<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/9/18
 * Time: 14:31
 */
namespace app\index\controller;
use think\Request;
use app\index\model\Member as MemberModel;
use think\Exception;
use think\Cache;
use think\Db;
use think\Loader;

class MemberMessage
{
    public function index($member_id = 0)
    {
        $param = Request::instance()->param();
        //if (empty($param['member_id'])) throw new Exception('member_id not Empty');
        //$where['m.auding_status'] = ['eq',2];
        //$where['m.is_delete'] = ['eq',1];
        $where = [];
        if (!empty($param['type_id'])) $where['mm.type_id'] = ['eq', $param['type_id']];
        if (!empty($param['type_id']) && $param['type_id'] == 2) {
            $where['mm.type_id'] = ['in', '2'];
        }
        //,3,4,5
        if (!empty($member_id)) $where['mm.member_id'] = ['eq', $member_id];

            $member_message_list = (new \app\index\model\MemberMessage())
                ->alias('mm')
                // ->join('message m','mm.message_id = m.id')
                ->where($where)
                ->field('mm.type_id,mm.id,mm.type_id,mm.title,substring(mm.create_time,"6","5") create_time,mm.is_click,mm.order_number')
                ->order(['mm.create_time' => 'desc','mm.id' => 'desc'])
                ->group('create_time')
                ->paginate(12000)->each(function(&$item,&$key){

                })->toArray();
//        $member_message_list4 = (new \app\index\model\MemberMessage())
//            ->alias('mm')
//            // ->join('message m','mm.message_id = m.id')
//            ->where($where)
//            ->where('type_id',4)
//            ->field('mm.type_id,mm.id,mm.type_id,mm.title,substring(mm.create_time,"6","5") create_time,mm.is_click,mm.order_number')
//            ->order(['mm.create_time' => 'desc','mm.id' => 'desc'])
//            ->group('create_time')
//            ->paginate(12000)->each(function($item,&$key){
//                unset($key);
//            })->toArray();
//        $member_message_list = array_merge($member_message_list,$member_message_list4);
//            if(!empty($member_message_list)){
//                foreach ($member_message_list['date'] as $k => &$v){
//                    if($v['type_id'] == 4){
//                        unset($member_message_list['date'][$k]);
//                    }
//                }
//            }
        $member_time = Db::name('member')->where('id',$member_id)->value('create_time');
        $data = (new \app\index\model\MemberMessage())
            ->alias('mm')
            // ->join('message m','mm.message_id = m.id')
            ->where($where)
            ->where('mm.create_time','> time',$member_time)
            ->field('mm.type_id,mm.id,mm.type_id,mm.title,substring(mm.create_time,"6","5") create_time,mm.is_click,mm.order_number')
            ->order(['mm.create_time' => 'desc','mm.id' => 'desc'])
            ->group('create_time')->select()->toArray();

        if(!empty($data)){
            foreach ($data as $k => $v){
				if($v['type_id'] == 4 && !Db::name('shop_assignor_records')->alias('sar')->where('id',$v['order_number'])->find()){
				    //unset($data[$k]);
				}
				if($v['type_id'] == 2 && !Db::name('order')->alias('sar')->where('order_number',$v['order_number'])->find()){
				    unset($data[$k]);
				}
				//查询这个信息如果是
				if($v['type_id'] == 4){
					$order_adda = Db::name('shop_assignor_records')->alias('sar')->where('id',$v['order_number'])->find();
					
					if($order_adda['assignor_content']=='9999'){
						$v['order_number'] = 
						Db::name('shop_assignor_records')
						->where('order_id',$order_adda['order_id'])
						->where('pici',$order_adda['pici'])
						->where('assignor_content','neq','9999')
						->value('id');
					}
					//var_dump($v['order_number']);
				}
                
            }
        }
        $data2['total'] = 1;
        $data2['per_page'] = 10000000;
        $data2['current_page'] = 1;
        $data2['last_page'] = 1;
        $data2['data'] = array_values($data);		
		foreach ($data2['data'] as &$v){
			if($v['type_id'] == 4){
				$order_add = Db::name('shop_assignor_records')->alias('sar')->where('id',$v['order_number'])->find();
				if($order_add['assignor_content']=='9999'){
					$v['order_number'] = 
					Db::name('shop_assignor_records')
					->where('order_id',$order_add['order_id'])
					->where('pici',$order_add['pici'])
					->where('assignor_content','neq','9999')
					->value('id');
					$v['pici']=$order_add['pici'];
				}
				//var_dump($v['order_number']);
			}
		}
		//var_dump($data2['data']);	

        $is_click_1_count = Db::name('member_message')->where('create_time','> time',$member_time)->where('member_id',$member_id)->where('is_click',1)->count();
        return ['code' => 200, 'message' => 'ok','is_click_1_count' => $is_click_1_count, 'data' => $data2];
    }

    public function view($id)
    {
        $member_message_id = Db::name('member_message')->where('id',$id)->find();
        if($member_message_id){ //系统消息
            $is_click = Db::name('member_message')->where('id',$id)->value('is_click');
            if($is_click == 1){
                Db::name('member_message')->where('id',$id)->setField('is_click','2');
            }
            $content = '<style> img {vertical-align:middle; width:auto; max-width:95%;} </style>';
            $content .= '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">';
            $content .= Db::name('member_message')->where('id',$id)->value('content');
            return response($content);
        }else{
            //$order_id = Db::table('sun_member_message')->where('id|order_number|order_id',$id)->value('order_id');
           // $order_number = Db::table('sun_member_message')->where('order_number',$id)->value('order_number');
            $is_click = Db::name('member_message')->where('order_number',$id)->value('is_click');
            if($is_click == 1){
                Db::name('member_message')->where('order_number',$id)->setField('is_click','2');
            }
            $order = (new \app\index\model\Order())->alias('o')
                ->field('o.yuyue_start_time,o.yuyue_end_time,o.sj,o.remark,o.shipping,o.shipping_province,o.shipping_address,o.shipping_phone,o.shipping_name,o.order_price,o.explain,o.bill,o.bill_type,o.bill_header,o.bill_content,o.bill_phone,o.bill_email,o.bill_number,o.coupon_id,o.coupon_title,o.coupon_content,o.coupon_price,o.coupon_totol_price,o.create_time,s.shop_phone,o.id,o.shop_id,o.amount,o.freight,o.service_type_id,o.order_type,o.single_parent_id,o.single_id,o.status,o.order_number,o.shop_order_number,s.shop_title')
                ->join('Shop s','s.id = o.shop_id','left')
                ->where('order_number|shop_order_number',$id)
                ->find();
            $order['order_price'] = bcadd($order['sj'],$order['order_price'],2);
           if(is_null($order['shop_phone'])) $order['shop_phone'] = '';
            switch ($order['service_type_id']){
                case 1;
                    $data = Db::name('order_service os')->join('order o','o.id = os.order_id')->join('single s','o.single_id = s.id','left')->field('s.pic_url,os.type_id_str,phone,protecteder,protecter_back,car_face,car_back')->where('os.order_id',$order['id'])->find();
                    $data['single_title'] = Db::name('single')->where('id',$order['single_id'])->value('cat_name');
                    $data['single_parent_title'] = Db::name('single')->where('id',$order['single_parent_id'])->value('cat_name');
                    //$order['service_list'] = $data;
                    $order = array_merge($order->toArray(),$data);
                    $order['goods_num'] = 1;
                    $order['spec'] = '规格';
//                    $data = Db::name('order_service os')->join('order o','o.id = os.order_id')->join('single s','o.single_id = s.id','left')->field('s.pic_url,os.type_id_str,phone,protecteder,protecter_back,car_face,car_back')->where('os.order_id',$order['id'])->find();
//                    $data['single_title'] = Db::name('single')->where('id',$order['single_id'])->value('cat_name');
//                    $data['single_parent_title'] = Db::name('single')->where('id',$order['single_parent_id'])->value('cat_name');
//                    $order['service_list'] = $data;
                    break;
                case 2;
                    $data = Db::name('order_service os')->join('order o','o.id = os.order_id')->join('single s','o.single_id = s.id','left')->field('s.pic_url,os.type_id_str,phone,protecteder,protecter_back,car_face,car_back')->where('os.order_id',$order['id'])->find();
                    $data['single_title'] = Db::name('single')->where('id',$order['single_id'])->value('cat_name');
                    $data['single_parent_title'] = Db::name('single')->where('id',$order['single_parent_id'])->value('cat_name');
                    //$order['service_list'] = $data;
                    $order = array_merge($order->toArray(),$data);
                    $order['goods_num'] = 1;
                    $order['spec'] = '规格';

                    break;
                case 3;
                    //$data = Db::name('order_service os')->join('order o','o.id = os.order_id')->join('single s','o.single_id = s.id','left')->field('s.pic_url,os.type_id_str,phone,protecteder,protecter_back,car_face,car_back')->where('os.order_id',$order['id'])->find();
                    $data['single_title'] = Db::name('single')->where('id',$order['single_id'])->value('cat_name');
                    $data['single_parent_title'] = Db::name('single')->where('id',$order['single_parent_id'])->value('cat_name');
                    //$order['service_list'] = $data;
                    $order = array_merge($order->toArray(),$data);
                    $order['goods_num'] = 1;
                    $order['spec'] = '规格';
                    break;
                case 4;
                    break;
            }
            if($order['shop_title'] =='') $order['shop_title'] = '目前还没有指定门店';
            return ['code' => 200, 'message' => '服务类订单信息','service_info' => $order,'service_tel' => db('config')->where('varname','web_service_tel')->value('varvalue')];
        }
    }

    public function shipping()
    {
        $param = Request::instance()->param();
        if ($param['shipping'] == 2) {
            $ret = Db::name('order')->where('id', $param['order_id'])->where('member_id', $param['member_id'])->update(['shipping' => $param['shipping'],'shipping_address' => $param['shipping_address'],'shipping_phone' => $param['shipping_phone'],'shipping_name' => $param['shipping_name'],'shipping_province' => $param['shipping_province']]);
            if ($ret !== false) {
                return ['code' => 200, 'message' => '配送方式为门店自提'];
            }
        }
        if ($param['shipping'] == 1) { //2到点自取 1商家配送 last
            $ret = Db::name('order')->where('id', $param['order_id'])->where('member_id', $param['member_id'])->update(['shipping' => $param['shipping'],'shipping_address' => $param['shipping_address'],'shipping_phone' => $param['shipping_phone'],'shipping_name' => $param['shipping_name'],'shipping_province' => $param['shipping_province']]);
            if ($ret !== false) {
                return ['code' => 200, 'message' => '配送方式为商家配送'];
            }
        }
        return ['code' => 400, 'message' => '失败'];
    }

    public function delete($id){
        $ret = Db::name('member_message')->delete($id);
        if($ret){
            return ['code' => 200 , 'message' => '删除成功'];
        }
        return ['code' => 400 , 'message' => '失败'];
    }

    public function set_read($id = '', $order_number = '')
    {
        $ret = Db::name('member_message')->where('id', $id)->setField('is_click', 2);
        $shop_assignor_records_id = Db::name('member_message')->where('id', $id)->value('order_number');
        $shop_assignor_records_order_id = Db::name('shop_assignor_records')->where('id', $shop_assignor_records_id)->value('order_id');
        $id_args = Db::name('shop_assignor_records')->where('order_id', $shop_assignor_records_order_id)->column('id');
        if(!empty($id_args)){
            Db::name('member_message')->where('order_number', 'in',$id_args)->setField('is_click', 2);
        }
        return ['code' => 200, 'message' => '已读'];

    }

    public function jpushMessage_alias($member_id = 1,$title = 'title',$content = "{time()}",$type = 1){

        $ret = Loader::import('jpush.examples.config');
        global $client;



// 简单推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!

//$push_payload = $client->push()
//    ->setPlatform('all')
//    ->addAllAudience()
//    ->setNotificationAlert('Hi, JPush');
//
//try {
//    $response = $push_payload->send();
//    print_r($response);
//} catch (\JPush\Exceptions\APIConnectionException $e) {
//    // try something here
//    print $e;
//} catch (\JPush\Exceptions\APIRequestException $e) {
//    // try something here
//    print $e;
//}
//die(3);
// 完整的推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!
        try {
            $response = $client->push()
                ->setPlatform(array('ios', 'android'))
                // 一般情况下，关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd  或 addRegistrationId
                // 这四个方法中的某一个即可，这里仅作为示例，当然全部调用也可以，多项 audience 调用表示其结果的交集
                // 即是说一般情况下，下面三个方法和没有列出的 addTagAnd 一共四个，只适用一个便可满足大多数的场景需求
                //->addAllAudience()
                ->addAlias("2969")
//        ->addTag(array('tag1', 'tag2'))
                // ->addRegistrationId($registration_id)

                ->setNotificationAlert($title)
                ->iosNotification($title, array(
                    'sound' => 'sound.caf',
                     'badge' => '+1',
                    // 'content-available' => true,
                    // 'mutable-content' => true,
                    'category' => 'jiguang',
                    'extras' => ['type' => $type],
                ))
                ->androidNotification($content, array(
                    'title' => $title,
                    // 'builder_id' => 2,
                    'extras' => ['type' => $type],
                ))
                ->message('message content', array(
                    'title' => 'hello jpush3213',
                    // 'content_type' => 'text',
                    'extras' => array(
                        'key' => 'value',
                        'jiguang'
                    ),
                ))
                ->options(array(
                    // sendno: 表示推送序号，纯粹用来作为 API 调用标识，
                    // API 返回时被原样返回，以方便 API 调用方匹配请求与返回
                    // 这里设置为 100 仅作为示例

                    // 'sendno' => 100,

                    // time_to_live: 表示离线消息保留时长(秒)，
                    // 推送当前用户不在线时，为该用户保留多长时间的离线消息，以便其上线时再次推送。
                    // 默认 86400 （1 天），最长 10 天。设置为 0 表示不保留离线消息，只有推送当前在线的用户可以收到
                    // 这里设置为 1 仅作为示例

                    // 'time_to_live' => 1,

                    // apns_production: 表示APNs是否生产环境，
                    // True 表示推送生产环境，False 表示要推送开发环境；如果不指定则默认为推送生产环境

                    'apns_production' => true,

                    // big_push_duration: 表示定速推送时长(分钟)，又名缓慢推送，把原本尽可能快的推送速度，降低下来，
                    // 给定的 n 分钟内，均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
                    // 这里设置为 1 仅作为示例

                    // 'big_push_duration' => 1
                ))
                ->send();

           // print_r($response);
        } catch (\JPush\Exceptions\APIConnectionException $e) {
            // try something here
           // print $e;
        } catch (\JPush\Exceptions\APIRequestException $e) {
            // try something here
            // print $e;
        }
        //halt(1);
    }

    public function jpushMessage($member_id = 1,$title = 'title',$content = "{time()}",$type = 1){
//消息类型：1 系统消息 2 订单消息 3优惠券 4礼包5会员卡
        $ret = Loader::import('jpush.examples.config');
        global $client;
        $member_id = (string)$member_id;


// 简单推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!

//$push_payload = $client->push()
//    ->setPlatform('all')
//    ->addAllAudience()
//    ->setNotificationAlert('Hi, JPush');
//
//try {
//    $response = $push_payload->send();
//    print_r($response);
//} catch (\JPush\Exceptions\APIConnectionException $e) {
//    // try something here
//    print $e;
//} catch (\JPush\Exceptions\APIRequestException $e) {
//    // try something here
//    print $e;
//}
//die(3);
// 完整的推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!
        try {
            $response = $client->push()
                ->setPlatform(array('ios', 'android'))
                // 一般情况下，关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd  或 addRegistrationId
                // 这四个方法中的某一个即可，这里仅作为示例，当然全部调用也可以，多项 audience 调用表示其结果的交集
                // 即是说一般情况下，下面三个方法和没有列出的 addTagAnd 一共四个，只适用一个便可满足大多数的场景需求
                //->addAllAudience()
                ->addAlias($member_id)
//        ->addTag(array('tag1', 'tag2'))
                // ->addRegistrationId($registration_id)

                ->setNotificationAlert($title)
                ->iosNotification($title, array(
                    'sound' => 'sound.caf',
                    // 'badge' => '+1',
                    // 'content-available' => true,
                    // 'mutable-content' => true,
                    'category' => 'jiguang',
                    'extras' => ['type' => $type],
                ))
                ->androidNotification($content, array(
                    'title' => $title,
                    // 'builder_id' => 2,
                    'extras' => ['type' => $type],
                ))
                ->message('message content', array(
                    'title' => 'hello jpush3213',
                    // 'content_type' => 'text',
                    'extras' => array(
                        'key' => 'value',
                        'jiguang'
                    ),
                ))
                ->options(array(
                    // sendno: 表示推送序号，纯粹用来作为 API 调用标识，
                    // API 返回时被原样返回，以方便 API 调用方匹配请求与返回
                    // 这里设置为 100 仅作为示例

                    // 'sendno' => 100,

                    // time_to_live: 表示离线消息保留时长(秒)，
                    // 推送当前用户不在线时，为该用户保留多长时间的离线消息，以便其上线时再次推送。
                    // 默认 86400 （1 天），最长 10 天。设置为 0 表示不保留离线消息，只有推送当前在线的用户可以收到
                    // 这里设置为 1 仅作为示例

                    // 'time_to_live' => 1,

                    // apns_production: 表示APNs是否生产环境，
                    // True 表示推送生产环境，False 表示要推送开发环境；如果不指定则默认为推送生产环境

                    'apns_production' => true,

                    // big_push_duration: 表示定速推送时长(分钟)，又名缓慢推送，把原本尽可能快的推送速度，降低下来，
                    // 给定的 n 分钟内，均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
                    // 这里设置为 1 仅作为示例

                    // 'big_push_duration' => 1
                ))
                ->send();
            //halt($response);
           //print_r($response);
        } catch (\JPush\Exceptions\APIConnectionException $e) {
            // try something here
            //print $e;
            ///halt($e);
        } catch (\JPush\Exceptions\APIRequestException $e) {
            // try something here
           // print $e;
            //halt($e);
        }
        //halt(1);
    }


    public function jpushMessage2($member_id = 1,$title = 'title',$content = "{time()}",$type = 1){

        $ret = Loader::import('jpush.examples.config');
        global $client;


// 简单推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!

//$push_payload = $client->push()
//    ->setPlatform('all')
//    ->addAllAudience()
//    ->setNotificationAlert('Hi, JPush');
//
//try {
//    $response = $push_payload->send();
//    print_r($response);
//} catch (\JPush\Exceptions\APIConnectionException $e) {
//    // try something here
//    print $e;
//} catch (\JPush\Exceptions\APIRequestException $e) {
//    // try something here
//    print $e;
//}
//die(3);
// 完整的推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!
        try {
            $response = $client->push()
                ->setPlatform(array('ios', 'android'))
                // 一般情况下，关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd  或 addRegistrationId
                // 这四个方法中的某一个即可，这里仅作为示例，当然全部调用也可以，多项 audience 调用表示其结果的交集
                // 即是说一般情况下，下面三个方法和没有列出的 addTagAnd 一共四个，只适用一个便可满足大多数的场景需求
//                ->addAllAudience()
                ->addAlias($member_id)
//        ->addTag(array('tag1', 'tag2'))
                // ->addRegistrationId($registration_id)

                ->setNotificationAlert($title)
                ->iosNotification($content, array(
                    'sound' => 'sound.caf',
                    // 'badge' => '+1',
                    // 'content-available' => true,
                    // 'mutable-content' => true,
                    'category' => 'jiguang',
                    'extras' => ['type' => $type],
                ))
                ->androidNotification($content, array(
                    'title' => $title,
                    // 'builder_id' => 2,
                    'extras' => ['type' => $type],
                ))
                ->message('message content', array(
                    'title' => 'hello jpush3213',
                    // 'content_type' => 'text',
                    'extras' => array(
                        'key' => 'value',
                        'jiguang'
                    ),
                ))
                ->options(array(
                    // sendno: 表示推送序号，纯粹用来作为 API 调用标识，
                    // API 返回时被原样返回，以方便 API 调用方匹配请求与返回
                    // 这里设置为 100 仅作为示例

                    // 'sendno' => 100,

                    // time_to_live: 表示离线消息保留时长(秒)，
                    // 推送当前用户不在线时，为该用户保留多长时间的离线消息，以便其上线时再次推送。
                    // 默认 86400 （1 天），最长 10 天。设置为 0 表示不保留离线消息，只有推送当前在线的用户可以收到
                    // 这里设置为 1 仅作为示例

                    // 'time_to_live' => 1,

                    // apns_production: 表示APNs是否生产环境，
                    // True 表示推送生产环境，False 表示要推送开发环境；如果不指定则默认为推送生产环境

                    'apns_production' => true,

                    // big_push_duration: 表示定速推送时长(分钟)，又名缓慢推送，把原本尽可能快的推送速度，降低下来，
                    // 给定的 n 分钟内，均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
                    // 这里设置为 1 仅作为示例

                    // 'big_push_duration' => 1
                ))
                ->send();

            //print_r($response);
        } catch (\JPush\Exceptions\APIConnectionException $e) {
            // try something here
            //print $e;
        } catch (\JPush\Exceptions\APIRequestException $e) {
            // try something here
            // print $e;
        }
        //halt(1);
    }

    public function jpushMessage_all($member_id = 1,$title = 'title',$content = "{time()}",$type = 1){

        $ret = Loader::import('jpush.examples.config');
        global $client;


// 简单推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!

//$push_payload = $client->push()
//    ->setPlatform('all')
//    ->addAllAudience()
//    ->setNotificationAlert('Hi, JPush');
//
//try {
//    $response = $push_payload->send();
//    print_r($response);
//} catch (\JPush\Exceptions\APIConnectionException $e) {
//    // try something here
//    print $e;
//} catch (\JPush\Exceptions\APIRequestException $e) {
//    // try something here
//    print $e;
//}
//die(3);
// 完整的推送示例
// 这只是使用样例,不应该直接用于实际生产环境中 !!
        try {
            $response = $client->push()
                ->setPlatform(array('ios', 'android'))
                // 一般情况下，关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd  或 addRegistrationId
                // 这四个方法中的某一个即可，这里仅作为示例，当然全部调用也可以，多项 audience 调用表示其结果的交集
                // 即是说一般情况下，下面三个方法和没有列出的 addTagAnd 一共四个，只适用一个便可满足大多数的场景需求
                ->addAllAudience()
//                ->addAlias($member_id)
//        ->addTag(array('tag1', 'tag2'))
                // ->addRegistrationId($registration_id)

                ->setNotificationAlert($title)
                ->iosNotification($content, array(
                    'sound' => 'sound.caf',
                    // 'badge' => '+1',
                    // 'content-available' => true,
                    // 'mutable-content' => true,
                    'category' => 'jiguang',
                    'extras' => ['type' => $type],
                ))
                ->androidNotification($content, array(
                    'title' => $title,
                    // 'builder_id' => 2,
                    'extras' => ['type' => $type],
                ))
                ->message('message content', array(
                    'title' => 'hello jpush3213',
                    // 'content_type' => 'text',
                    'extras' => array(
                        'key' => 'value',
                        'jiguang'
                    ),
                ))
                ->options(array(
                    // sendno: 表示推送序号，纯粹用来作为 API 调用标识，
                    // API 返回时被原样返回，以方便 API 调用方匹配请求与返回
                    // 这里设置为 100 仅作为示例

                    // 'sendno' => 100,

                    // time_to_live: 表示离线消息保留时长(秒)，
                    // 推送当前用户不在线时，为该用户保留多长时间的离线消息，以便其上线时再次推送。
                    // 默认 86400 （1 天），最长 10 天。设置为 0 表示不保留离线消息，只有推送当前在线的用户可以收到
                    // 这里设置为 1 仅作为示例

                    // 'time_to_live' => 1,

                    // apns_production: 表示APNs是否生产环境，
                    // True 表示推送生产环境，False 表示要推送开发环境；如果不指定则默认为推送生产环境

                    'apns_production' => true,

                    // big_push_duration: 表示定速推送时长(分钟)，又名缓慢推送，把原本尽可能快的推送速度，降低下来，
                    // 给定的 n 分钟内，均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
                    // 这里设置为 1 仅作为示例

                    // 'big_push_duration' => 1
                ))
                ->send();

            //print_r($response);
        } catch (\JPush\Exceptions\APIConnectionException $e) {
            // try something here
            //print $e;
        } catch (\JPush\Exceptions\APIRequestException $e) {
            // try something here
            // print $e;
        }
        //halt(1);
    }
}